↳ Prolog
↳ PrologToPiTRSProof
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
SLOWSORT_IN(X, Y) → U11(X, Y, perm_in(X, Y))
SLOWSORT_IN(X, Y) → PERM_IN(X, Y)
PERM_IN(.(X, .(Y, [])), .(U, .(V, []))) → U51(X, Y, U, V, delete_in(U, .(X, Y), Z))
PERM_IN(.(X, .(Y, [])), .(U, .(V, []))) → DELETE_IN(U, .(X, Y), Z)
DELETE_IN(X, .(Y, Z), W) → U71(X, Y, Z, W, delete_in(X, Z, W))
DELETE_IN(X, .(Y, Z), W) → DELETE_IN(X, Z, W)
U51(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U61(X, Y, U, V, perm_in(Z, V))
U51(X, Y, U, V, delete_out(U, .(X, Y), Z)) → PERM_IN(Z, V)
U11(X, Y, perm_out(X, Y)) → U21(X, Y, sorted_in(Y))
U11(X, Y, perm_out(X, Y)) → SORTED_IN(Y)
SORTED_IN(.(X, .(Y, Z))) → U31(X, Y, Z, le_in(X, Y))
SORTED_IN(.(X, .(Y, Z))) → LE_IN(X, Y)
LE_IN(s(X), s(Y)) → U81(X, Y, le_in(X, Y))
LE_IN(s(X), s(Y)) → LE_IN(X, Y)
U31(X, Y, Z, le_out(X, Y)) → U41(X, Y, Z, sorted_in(.(Y, Z)))
U31(X, Y, Z, le_out(X, Y)) → SORTED_IN(.(Y, Z))
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
SLOWSORT_IN(X, Y) → U11(X, Y, perm_in(X, Y))
SLOWSORT_IN(X, Y) → PERM_IN(X, Y)
PERM_IN(.(X, .(Y, [])), .(U, .(V, []))) → U51(X, Y, U, V, delete_in(U, .(X, Y), Z))
PERM_IN(.(X, .(Y, [])), .(U, .(V, []))) → DELETE_IN(U, .(X, Y), Z)
DELETE_IN(X, .(Y, Z), W) → U71(X, Y, Z, W, delete_in(X, Z, W))
DELETE_IN(X, .(Y, Z), W) → DELETE_IN(X, Z, W)
U51(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U61(X, Y, U, V, perm_in(Z, V))
U51(X, Y, U, V, delete_out(U, .(X, Y), Z)) → PERM_IN(Z, V)
U11(X, Y, perm_out(X, Y)) → U21(X, Y, sorted_in(Y))
U11(X, Y, perm_out(X, Y)) → SORTED_IN(Y)
SORTED_IN(.(X, .(Y, Z))) → U31(X, Y, Z, le_in(X, Y))
SORTED_IN(.(X, .(Y, Z))) → LE_IN(X, Y)
LE_IN(s(X), s(Y)) → U81(X, Y, le_in(X, Y))
LE_IN(s(X), s(Y)) → LE_IN(X, Y)
U31(X, Y, Z, le_out(X, Y)) → U41(X, Y, Z, sorted_in(.(Y, Z)))
U31(X, Y, Z, le_out(X, Y)) → SORTED_IN(.(Y, Z))
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
LE_IN(s(X), s(Y)) → LE_IN(X, Y)
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
LE_IN(s(X), s(Y)) → LE_IN(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
LE_IN(s(X), s(Y)) → LE_IN(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
SORTED_IN(.(X, .(Y, Z))) → U31(X, Y, Z, le_in(X, Y))
U31(X, Y, Z, le_out(X, Y)) → SORTED_IN(.(Y, Z))
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
SORTED_IN(.(X, .(Y, Z))) → U31(X, Y, Z, le_in(X, Y))
U31(X, Y, Z, le_out(X, Y)) → SORTED_IN(.(Y, Z))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ PiDP
↳ PiDP
SORTED_IN(.(X, .(Y, Z))) → U31(Y, Z, le_in(X, Y))
U31(Y, Z, le_out) → SORTED_IN(.(Y, Z))
le_in(0, 0) → le_out
le_in(0, s(X)) → le_out
le_in(s(X), s(Y)) → U8(le_in(X, Y))
U8(le_out) → le_out
le_in(x0, x1)
U8(x0)
The following rules are removed from R:
SORTED_IN(.(X, .(Y, Z))) → U31(Y, Z, le_in(X, Y))
U31(Y, Z, le_out) → SORTED_IN(.(Y, Z))
Used ordering: POLO with Polynomial interpretation [25]:
le_in(0, 0) → le_out
le_in(0, s(X)) → le_out
le_in(s(X), s(Y)) → U8(le_in(X, Y))
U8(le_out) → le_out
POL(.(x1, x2)) = 2 + 2·x1 + 2·x2
POL(0) = 2
POL(SORTED_IN(x1)) = 1 + x1
POL(U31(x1, x2, x3)) = 2 + 2·x1 + 2·x2 + x3
POL(U8(x1)) = 1 + x1
POL(le_in(x1, x2)) = 2 + x1 + 2·x2
POL(le_out) = 2
POL(s(x1)) = 1 + x1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
↳ PiDP
↳ PiDP
le_in(x0, x1)
U8(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
DELETE_IN(X, .(Y, Z), W) → DELETE_IN(X, Z, W)
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
DELETE_IN(X, .(Y, Z), W) → DELETE_IN(X, Z, W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
DELETE_IN(.(Y, Z)) → DELETE_IN(Z)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
PERM_IN(.(X, .(Y, [])), .(U, .(V, []))) → U51(X, Y, U, V, delete_in(U, .(X, Y), Z))
U51(X, Y, U, V, delete_out(U, .(X, Y), Z)) → PERM_IN(Z, V)
slowsort_in(X, Y) → U1(X, Y, perm_in(X, Y))
perm_in(.(X, .(Y, [])), .(U, .(V, []))) → U5(X, Y, U, V, delete_in(U, .(X, Y), Z))
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
U5(X, Y, U, V, delete_out(U, .(X, Y), Z)) → U6(X, Y, U, V, perm_in(Z, V))
perm_in([], []) → perm_out([], [])
U6(X, Y, U, V, perm_out(Z, V)) → perm_out(.(X, .(Y, [])), .(U, .(V, [])))
U1(X, Y, perm_out(X, Y)) → U2(X, Y, sorted_in(Y))
sorted_in(.(X, .(Y, Z))) → U3(X, Y, Z, le_in(X, Y))
le_in(0, 0) → le_out(0, 0)
le_in(0, s(X)) → le_out(0, s(X))
le_in(s(X), s(Y)) → U8(X, Y, le_in(X, Y))
U8(X, Y, le_out(X, Y)) → le_out(s(X), s(Y))
U3(X, Y, Z, le_out(X, Y)) → U4(X, Y, Z, sorted_in(.(Y, Z)))
sorted_in(.(X, [])) → sorted_out(.(X, []))
sorted_in([]) → sorted_out([])
U4(X, Y, Z, sorted_out(.(Y, Z))) → sorted_out(.(X, .(Y, Z)))
U2(X, Y, sorted_out(Y)) → slowsort_out(X, Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
PERM_IN(.(X, .(Y, [])), .(U, .(V, []))) → U51(X, Y, U, V, delete_in(U, .(X, Y), Z))
U51(X, Y, U, V, delete_out(U, .(X, Y), Z)) → PERM_IN(Z, V)
delete_in(X, .(Y, Z), W) → U7(X, Y, Z, W, delete_in(X, Z, W))
delete_in(X, .(X, Y), Y) → delete_out(X, .(X, Y), Y)
U7(X, Y, Z, W, delete_out(X, Z, W)) → delete_out(X, .(Y, Z), W)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ UsableRulesReductionPairsProof
U51(delete_out(U, Z)) → PERM_IN(Z)
PERM_IN(.(X, .(Y, []))) → U51(delete_in(.(X, Y)))
delete_in(.(Y, Z)) → U7(delete_in(Z))
delete_in(.(X, Y)) → delete_out(X, Y)
U7(delete_out(X, W)) → delete_out(X, W)
delete_in(x0)
U7(x0)
The following rules are removed from R:
U51(delete_out(U, Z)) → PERM_IN(Z)
PERM_IN(.(X, .(Y, []))) → U51(delete_in(.(X, Y)))
Used ordering: POLO with Polynomial interpretation [25]:
U7(delete_out(X, W)) → delete_out(X, W)
POL(.(x1, x2)) = 1 + 2·x1 + x2
POL(PERM_IN(x1)) = x1
POL(U51(x1)) = x1
POL(U7(x1)) = 1 + x1
POL([]) = 1
POL(delete_in(x1)) = x1
POL(delete_out(x1, x2)) = 1 + x1 + x2
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof
delete_in(.(Y, Z)) → U7(delete_in(Z))
delete_in(.(X, Y)) → delete_out(X, Y)
delete_in(x0)
U7(x0)